Apparatus and method for monitoring a trunked radio communications system

ABSTRACT

The present invention provides a method and apparatus for monitoring a trunked radio communications system by using some type of radio scanning receiver that is not designed for that purpose. In addition, the invention provides a method for automatically determining the polarity of the received control channel data. Further, the invention provides a method for automatically determining the type of trunked radio communications system. In addition the invention provides a method for automatically determining the channels in a trunked radio system and a method for automatically determining the bit rate of transmitted digital signals over a control channel of a trunked radio communications system.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates generally to the field of radio systems, and morespecifically to methods and apparatus for monitoring trunked radiocommunications, decoding the digital data from trunked radio controlchannels, and to methods and apparatus for determining the type oftrunked radio system by observing the characteristics of the digitaldata transmitted on a control channel.

2. Description of the Related Art

Modernly, the two types of mobile radio communication systems. The firstis a conventional radio communication system. Here, mobile radio unitsare assigned a single radio frequency channel. All subscribers to thesystem share the same channel, and cooperate by monitoring the channelfor activity. Most conventional radio communication systems work wellwhen there is a small number of subscribers and the usage patterns forall the subscribers is similar.

To overcome the limitations of the conventional radio communicationssystem, an implementation of a trunked communications system isemployed. In the trunked communication system, a central controllerallocates a number of channels among many subscribers. Generally, thesubscribers are organized into fleets, sub-fleets or groups, andindividuals. Accordingly, each subscriber has a fleet, group, and anindividual identification code. A mobile radio initiates communicationsby transmitting a digital request message to a system central controllervia a predetermined inbound frequency. Here, the mobile unit generates achannel request that includes the necessary information to identify itto the central controller. The central controller responds to the mobileunit with a digital message via a separate and distinct predeterminedoutbound frequency that, in turn, authorizes the mobile unit to operateon an n another channel. This outbound digital message is often referredto as an outbound signaling word (OSW) or a channel assignment messageor a channel grant message. Both the inbound and outbound channel isoften referred to as a “system control channel”. In addition, the mobileunit also responds to other commands that are received from the centralcontroller.

There are a number of trunked radio systems that are currently use inthe United States. One of these trunked radio systems is described inU.S. Pat. Nos. 4,692,945 and 4,723,264 issued to Motorola. These twopatents disclose an improved dispatch trunked radio system having anexpanded unifying signaling protocol used to implement several enhancedsystem features. Here, the subscriber or mobile units are capable ofgenerating and receiving signaling information in a single word orconcatenated in a dual-word signaling scheme. The central control unitis able to decode and generate signaling information in either a singleor concatenated dual-word signaling scheme, as well as generates channelcontrolling information in accordance with either signaling scheme.

In addition, U.S. Pat. Nos. 4,055,832 and 4,312,070 also issued toMotorola describes the method used to encoding data transmitted over thecontrol channel of a trunked radio system implemented by Motorola. Here,En and Coombes, et al. discloses an encoding and decoding system suitedfor use in a mobile trunked dispatch communication system capable oferror correction, error detection, and detection of loss ofsynchronization. More specifically, the system disclosed in En andCoombes, et al., respectfully, provides an error correction system thatcan correct one random error out of every four bits transmitted with aminimum of time delay in transmission and a minimum number of componentsfor system implementation.

In U.S. Pat. No. 4,905,302 issued to Childress, et al. discloses anothertrunked radio communications system, known as EDACS, that providessubstantial improvements in channel acquisition and channel drop, and inreliability of critical control signaling. The system uses a much higherdigital signaling rate than is typically found in prior art systems, anduses a control channel to convey digital channel request and assignmentmessages between the central site and mobile transceivers. The mobileradio systems transmit channel requests on the inbound control channel(if no response is received, the mobile retries during a retry timewindow which increases in duration in dependence on the number ofretries). The mobile transceiver switches to a working channel inresponse to an assignment message received on the control channel.Digital signals transmitted on the control channel and subaudibledigital signal transmitted on active working channels allow late entry,shifting to higher priority calls, and other advanced functions. Messageand transmission trunking capabilities are both present so as tomaximize working channel usage without compromising channel access forhigh priority communications. During transmission, the calling as wellas the calling transceivers return to the control channel after eachtransmission (and called transceivers may be inhibited fromtransmitting) but grant higher priority to calls from the othertransceivers being communicated with to ensure continuity over an entireconversation.

It is desirable to monitor various users of a communication system, butwithout any capability of transmitting. Conventional communicationsystems are easily monitored with a variety of radio communicationreceivers. One example of this type of radio communication receiver is ascanner. Scanners are radio receivers that typically cover a range offrequencies between approximately 30 MHz and 1 GHz. The scanningreceiver is sequentially tuned through a set of predetermined, userselected frequencies. If a signal is detected, the scanner stopsscanning and remains tuned to that frequency until the signal ceases,whereupon the scanner resumes searching for another frequency. Thetypical scanner is comprised of a receive-only radio without anycapability of transmitting a signal. Such scanning receivers areinexpensive and enable a user to hear transmissions on a conventionalradio system with little effort on the part of the user, and little orno effort on the part of the communications systems operator. Aconventional scanner is not able to correctly follow a sequence oftransmissions on a trunked radio system because the scanner has noability to understand the outbound channel assignment messages sent bythe trunking system controller.

U.S. Pat. No. 5,784,388 issued to Knox discloses several significantimprovements to a conventional scanner and improves the ability todecode the messages from a Motorola trunked system control channel. Thesystem disclosed in Knox decodes encoded data from the control channelof a trunked radio communications system. The decoder includes ade-interleave, an auto synchronization sequence combiner, and a tablelookup error detector to recover the transmitted information and alsoindicates whether any errors are present in the recovered information.However, the advancement disclosed by Knox requires that the scanner bespecifically designed and manufactured to operate for use with Motorolatrunked radio communications systems. Additionally, the system disclosedby Knox requires that the operator of the scanner be able to identifythe various types and characteristics of a trunked system, theparticular radio frequencies of the system as well as to program thesedetails into the scanner or computer.

In the case of the EDACS trunking system, the data messages transmittedby the system controller do not contain frequency information. EDACSmessages only contain logical channel numbers. EDACS mobile units arepre-programmed with a frequency table that allows the mobile unit toassociate a specific radio frequency with logical channel numbers. Toproperly tune a scanning radio to an EDACS working channel, the usermust know which frequencies are assigned to the system.

Therefore, there is a need for providing a method and apparatus formonitoring trunked radio communications system that automaticallydetermines the characteristics and frequencies of trunked radiocommunications systems, thus, eliminating the need for a user to programthese details.

SUMMARY OF THE PRESENT INVENTION

A preferred embodiment of the present invention provides a method andapparatus for monitoring a trunked radio communications system by usingsome type of radio scanning receiver that is not designed for thatpurpose.

In accordance with the purpose of the invention, as embodied and broadlydescribed herein, the invention relates to provide a method forautomatically determining the polarity of the received control channeldata.

Further in accordance with the purpose of the invention, as embodied andbroadly described herein, the invention provides a method forautomatically determining the type of trunked radio communicationssystem. In addition the invention provides a method for automaticallydetermining the bit rate of transmitted digital signals over a controlchannel of a trunked radio communications system.

Further in accordance with the purpose of the invention, as embodied andbroadly described herein, the invention provides a method forautomatically determining the frequencies used in a trunked radiocommunications system.

The preferred embodiment of the present invention for monitoringcommunications in a trunked radio communication system includes apersonal computer with a sound card for sampling the baseband, afrequency tunable receiver, a zero crossing detector to convert PCMsamples to NRZ equivalent, a plurality of preamble correlators to detectthe phase, bit rate, polarity and type of trunked radio communicationsystem, a bit phase compensator to recover the transmitted data from thesampled data stream, decoding means to decode transmitted digitalcontrol channel messages and respond to channel assignment messages froma decoded working channel.

An alternative of the preferred embodiment uses a micro-controller suchas the one used to control a receiver scanner. In this embodiment, thepre-calculation steps are carried out once, during the programming ofthe micro-controller. Additionally, the incoming data bits are sampleddirectly using an input port on the micro-controller, rather than usinga sound card. Here, the sample rate is selected from a possible set ofvalues for a given the micro-controller architecture and its associatedclock rate.

Advantages of the invention will be set forth, in part, in thedescription that follows and, in part, will be understood by thoseskilled in the art from the description herein. The advantages of theinvention will be realized and attained by means of the elements andcombinations particularly pointed out in the appended claims andequivalents.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate several embodiments of theinvention and, together with the description, sever to explain theprinciples of the invention.

FIG. 1 is a block diagram that illustrates how the embodiment of thepresent invention can be implemented.

FIG. 2 shows the message formats of both the Motorola and EDACS radiocommunication systems.

FIG. 3 is a block diagram of the signal processing application programas implemented by the present invention.

FIG. 4 is a diagram that illustrates the determination of the bestsample for a preamble at 3.6 Kb of a Motorola radio system.

FIGS. 5 a-5 e is flowcharts illustrating the steps used to calculate thevalues in the BPC table.

FIG. 6 is a block diagram that details the operative elements of thecorrelator array in accordance with FIG. 3.

FIG. 7 is a schematic diagram detailing the logic functions of thecorrelation elements of a correlator in accordance with theimplementation of the correlator array shown in FIG. 6.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

The present invention now will be described more fully with reference tothe accompanying drawings, in which the preferred embodiments of theinvention are shown. The present invention may, however, embodied inmany different forms and should not be construed as limited to theembodiment set forth herein; rather these embodiments are provided sothat this disclosure will be thorough and complete and will fully conveythe invention to those skilled in the art.

FIG. 1 shows a typical radio monitoring system 100 that is programmed toperform the functions of monitoring a trunked radio communicationssystem. The system 100 includes at least one processing element 102 (any32 bit processor or processors is appropriate), main memory 104 and somestorage device 106. The storage device 106 of the system 100 stores theoperating system software 118, application programs 124 and a databasecontaining a plurality of sample tables 120.

As FIG. 1 shows the storage device 106 includes a series of applicationprograms 124 that comprise a signal processing program 126, an OSWprocessing program 128 and a radio control program 130. In accordancewith the present invention, these application programs, eithersingularly or in combination, direct various system components of radiomonitoring system 100 such as sound card 110 in conjunction with thefrequency tuned radio receiver 140 to automatically identify the typeand data rate of any industry standard, commercially available trunkedradio communications system from the digital message transmitted acrossthe control channel.

By selecting a sampling rate substantially higher than the highestexpected trunking control channel data rate, the signal processingsoftware can be designed to identify and decode any of the desiredtrunking systems without changing the sampling rate. This isadvantageous, since most personal computer sound cards are limited toonly a few rates. For example, most common personal computer sound cardscan sample at 11.025 kHz, 22.05 kHz and 44.1 kHz.

By using the appropriate sampling rate generated by the sound card, aswell as a unique signal processing application facility, the presentinvention scans a range of frequencies, determines the type of radiosystem, analyzes the extracted information to obtain the channelassignment code and talk group identification code and comparing theagency or group talk identification code, tuning the frequency tunedradio receiver to a working voice channels in order to monitor a trunkedcommunications system. As will be disclosed in detail in FIG. 3, thepresent invention includes a bit phase compensator (BPC) that comprisesa sample counter, sample selector and bit phase compensator tableselects appropriate samples from the incoming sample stream, producing asynchronized output bit data stream at the rate originally transmittedby the trunking system control channel transmitter.

For example, selecting a sampling rate of 11.025 kHz maybe acceptablefor on a Motorola system running at 3600 baud, but it does not provideenough samples to accurately decode data from an EDACS radio systemrunning at 9600 baud. Selecting a sampling rate of 22.05 kHz allows forthe accurate decoding of an incoming data stream from either Motorolaradio systems or EDACS radio systems.

Furthermore, a person of ordinary skill in the art will understand thesystems 100 may also includes such components as a keyboard, a mouse,and a one or more display devices, such as a high resolution monitor. Inaddition, the storage device 106 for system 100 will includes devicessuch as floppy disk drives, CD-ROM drives, or DVD players that arecapable of reading computer instructions that has been stored on acompatible computer readable medium.

In the following discussion, it is understood that the appropriateprocessors 102 (or similar processors) perform the steps of methods andflowcharts discussed preferably executing instructions stored in storagedevice 104. It is also be understood that the invention is not limitedto any particular implementation or programming technique and that theinvention may be implemented using any appropriate techniques forimplementing the functionality described herein. In addition, thepresent invention is not limited to any particular programming languageor operating system.

The software stored in storage device 106 may have been supplied fromcomputer-readable medium 116. Execution of the sequence of instructionsretrieved from the storage device 106 causes the processor 102 toperform the steps of monitoring a trunked communications systemdescribed herein. In addition, alternative embodiments of the presentinvention are not limited to any specific combination of hardware andsoftware.

The term “computer-readable medium” as used refers to any medium thatprovides the sequence of instructions to a processor for execution. Sucha medium may take many forms including, but not limited to, volatilemedia, non-volatile media or through a transmission media. Non-volatilerefers to includes either optical or magnetic data storage media.Volatile media refers to various types of dynamic memory. Transmissionmedia includes application content and data sent via coaxial or fiberoptic cable or those transmitted via acoustic, light, radio, or infrareddata communications facilities. Common forms of computer-readable mediainclude, a floppy disk, a flexible disk, a hard disk, magnetic tape, orany other magnetic medium, a CD-ROM, any other optical medium or anyother physical media such as PROM, EPROM, FLASH-EPROM, any other memorychip or cartridge, a carrier wave as or any other medium from which acomputer is able to read a sequence of program instructions,applications content or data.

Various forms of computer readable media may be involved in carrying oneor more sequences of instructions to a processor for execution. Forexample, the instructions may initially be carried on a magnetic oroptical disk to and from a remote computer. As shown in FIG. 1, bus 108carries either a sequence of program instructions, and applicationscontent to the main memory 104, from which a processor 102 retrieves anduses the instructions and applications content. The instructionsreceived by main memory may be stored on a storage device 106 eitherbefore or after execution by a processor 102. The instructions can alsobe transmitted via a carrier wave via a network, such as a LAN, a WAN,or the Internet.

FIGS. 2 a and 2 b show the message formats of both the Motorola andEDACS radio communication systems. Modernly, most trunked radiocommunications systems have a number of different features andcapabilities. These can be transmission rate, message type, and errorcorrection, for example. But one of the most common characteristics forall these radio systems is the format of a typical transmitted message.Typically, each message includes a preamble and an information frame. Asillustrated in FIG. 2 a, the format of a message 202 transmitted by aMotorola trunked dispatch or radio communication system includes apreamble 204 that is eights bits long and an information frame 206 thatis seventy-six bits long. FIG. 2 b shows the message format of anEnhanced Digital Access Communications System (EDACS) that includes apreamble 208 that is forty-eight bits long and an information frame 210that is two hundred-forty bits in length. In either case, the preamblecomprises a predetermined sequence of bits that has a set of lowauto-correlation characteristics that allow the processing unit of amobile radio to rapidly synchronize its decoding logic to an incomingsignal. In addition, the preamble can be used to determine at whatinstant in time the information frame will arrive. Here the informationframe includes a data message that is preceded by a predetermined bitpattern or code that is added to the data message prior to transmissionso that any errors that might occur can be detected or corrected by thereceiver or scanner.

Reference is now made to FIG. 3 which is a detailed block diagram of thesignal processor as implemented by the present invention. As FIG. 3shows a zero cross filter and detector 302 and correlator array 304precedes the signal processor 126. As the data message is processed, thezero cross filter and detector 302 detects the polarity of each bit inthe incoming data stream, converts the received data stream from PCM toits NRZ equivalent and directs the converted data stream to thecorrelator array 304 and the polarity inverter 306. Here, the correlatorarray 304 is a multi-element software mechanism that compares theincoming received samples with a pre-determined set of test values. Byperforming this function, the correlator array 304 identifies the typeof radio system, the polarity of the data, and the proper position inthe BPC table to enable the correct rendering of the data stream at thecorrect rate.

As shown in FIG. 3, the signal processor 126 includes a polarityinverter 306, system selector 310 and a sample selector 312. Inaddition, a bit counter 308 and a bit phase compensator table (BPC) 314are directly interfaced to the sample selector 312. The bit counter 308maintains a count of the number of the bits received and directs thesample selector 312 in selecting samples the high rate data.

Responsive to the results of the correlator array 304, the radio systemselector 310 switches to the appropriate radio system and selects theappropriate BPC table 314. As shown here, the inbound data stream isintroduced to the polarity inverter 306 that inverts the polarity of anydata bits or samples in the received data stream from negative topositive, thus, directing an all positive data stream to the sampleselector 312. The sample selector 312 receives the data stream andreconstructs the coded information frame in accordance with thecorresponding bit selection from the BPC table 314.

Also as FIG. 3 shows, a bit phase compensator (BPC) comprises the samplecounter 308, sample selector 312 and the BPC table 314. The bit phasecompensator (BPC) compensates for the random phase relationship betweenincoming samples and the transmitted information bits, and produces anoutput information data stream at the data rate of the originallytransmitted information. The bit phase compensator (BPC) processes theincoming high rate data stream whose polarity has been corrected bypolarity inverter 306, and produces an output data stream that is areconstruction of the originally transmitted data. Incoming samples areprocessed one at a time.

FIG. 4 is a graphical illustration that shows a preamble at 3.6 Kb for aMotorola radio system and by applying the appropriate correlation mask asequence of preferred samples can be calculated as implemented by thepresent invention. As FIG. 4 shows the preamble of a Motorola radiosystem at 3.6 Kb 202 and a representative sampling rate of 11.025 KHz404. By applying the correlation mask 406, in accordance to the methoddescribed above to the preamble 402, the best samples are then selected408. As FIG. 4 shows, there are more samples in the incoming samplestream than information data bits. The bit phase compensator (BPC)selects the best sample for each information bit and ignores othersamples. The sample counter 308 addresses a row in the BPC table 314. Aseach incoming sample is processed, the sample counter 308 is thenincremented by one. When the end of the table is reached, the samplecounter 308 is reset to zero, so the progression through the BPC table314 represents the repeating phase relationship between samples andinformation data bits.

Each row of the BPC table 314 has an indicator for the best bit for eachsample. When a BPC row is accessed that is designated as a best bit, theincoming high rate bit is transferred to the output. If the best-bitindication is off, the high rate sample is ignored. Since the samplecounter 308 is preset by the one of the correlators in the correlatorarray 304 when a preamble is detected, the BPC table 314 is thensynchronized to the proper point in the repeating phase sequence ofsamples. Thus the output from the BPC table 314 contains fewer bits thanthe number of samples in the incoming data stream. This corresponds tothe difference between the chosen sampling rate and the information datarate sent by the trunking control channel transmitter.

The reconstructed information data stream is then presented to the OSWprocessing element 128. This element scans the data stream for thebeginning of the information data frame, determines the type of message,and extracts frequency and talk group codes from the messages. Once thefrequency and talk group information have been extracted, the radioreceiver processing element 130 the tunes the radio to the appropriatefrequency in order to receive the voice transmission.

In the case of the EDACS trunking system, the OSW messages do notcontain frequency information, only contain logical channel numbers. Toproperly tune a radio to an EDACS working channel, the receiverprocessing element 130 must know the frequency that corresponds to thelogical channel number in the message.

To discover the frequencies in use in an EDACS system, the receiverprocessing element employs an adaptive search method described here.First, tables in the computer memory are created containing five integerdata elements for each potential radio frequency. The data elements arethe active count, inactive count, test count, fail count and the lockindicator. One table is created for each logical channel whose frequencyis unknown. The number of possible radio frequencies is large, butlimited by factors such as channel spacing and the way frequencies areassigned to users by the government frequency management authority.

When an OSW message is received with a logical channel number whosefrequency is unknown, the receiver processing element 130 begins afrequency search. When searching, frequencies above and below thecontrol channel are sequentially tuned at fixed steps. As each frequencyis tuned, the receiver processing element determines if a signal ispresent on the frequency. If a signal is present, the active count isincremented. If a signal is not present, the inactive count isincremented. After the appropriate counter is incremented, anotherfrequency is selected and the process is repeated. This processcontinues for a user configurable time, typically two seconds, thereceiver processing element then terminates the search and returns tothe trunking system control channel to decode more OSW messages.

The receiver processing element 130 takes an additional step to validatethe information collected during the searching process. Each time a newOSW message with an unknown logical channel number is decoded, thefrequency with the highest ratio of active to inactive counts is tunedfirst, before the sequential search is begun. If a signal is found to bepresent, the test count in the table is incremented. If there is nosignal, the fail count is incremented. Channels with more than a fewfail counts can be ruled out.

If the test count for a frequency exceeds a user configurable thresholdlevel, and the fail count is very small or zero, the receiver processingelement forgoes the searching process and remains tuned to the frequencyto allow the user to listen to the transmission. The user can decide toaccept the frequency, in which case the receiver processing element willpermanently associate the frequency with the logical channel. The usercan also decide that the transmission being heard is not from thetrunking system, and the receiver processing element sets the lockindicator. Once the lock indicator is set, the frequency is no longerconsidered a candidate, and will be ignored in future searchingactivities. If the user takes no action, the receiver processing element130 handles the transmission the same way as it would a normal EDACStransmission where the logical channel association was known, i.e.returning to the control channel after the transmission ends. Thus,after some period of time, the receiver processing element 130 willgradually discover the logical channel to frequency relationship, andscanning the EDACS system will approach normal.

FIGS. 5 a-5 d is flowcharts illustrating the steps used to calculate thevalues in the BPC table 314. Each of the steps shown are carried out foronce each combination of sample rate and system baud rate that are thestored as table functions to be used during the correlation and bitphase compensation processes.

As shown by FIG. 5 a, at step 504, the data rate is set to 3.6 Kb while,at step 506 the sample rate is set to 11.025 KHz. Once these twoparameters have been set, at step 508, the monitoring system calculatesthe values that are required for the bit phase compensation table. Thecalculation of the values for the bit phase compensation table, at step508, comprises a series of intricate of steps that are shown in FIGS. 5b to 5 e. As shown in FIG. 5 b, to obtain the necessary values requiredfor the bit phase compensation table, a series of calculations areperformed that includes calculating the sample period (at step 503),determining the data bit width DBW (at step 505) and calculating databits alignment (at step 507). Next the monitoring system calculate whatportion the received data bits are to be ignored (at step 509), whatportion of the received data bits are positioned in the early zone (atstep 511), what portion of the received data bits are in the middle zone(at step 513) and what portion of the received data bits are last andthus, will be ignored (at step 515).

As FIG. 5 c shows, the monitoring system, at step 517, determines theplacement of the data bit in the pattern and then, at step 519determines if the received sample falls either in front of or behind thecenter point of the DBW. Once the it has been determined that the sampleis either in the in front or behind the center point of the DBW, themonitoring system, step 521, determines if the received bit pattern isrepeated and if the bit pattern is aligned. If the repeated bit patternis not aligned, at step 521, the monitoring system, at step 523, thenproceeds to calculate the next sample time and repeats steps 517 to 521until the bit pattern that is repeated is aligned. But if the repeatedbit pattern is aligned, the monitoring system at steps 525 and 527respectively, allocates enough space to store the bit phase compensationtable and determines the placement of the data bit in the bit pattern.

At this point in the process, the monitoring system performs a number ofsubroutines to determine what will be the best sample to use. As FIG. 5d shows, at step 531, the monitoring system calculates the position of asample and then, at step 533, performs a zone subroutine to determinethe relative position of the specified sample. Referring to FIG. 5 ethat show, in detail, the method, at step 533, used to determine therelative position of a sample. As FIG. 5 e shows at step 550, thementoring system calculates the actual position of the sample inaccordance to one of three zones and if it is to close to the near edgeof the received pattern. Thus, if, at step 552, the offset of the sampleis to close to the edge, then at step 554, the sample will be ignored.But if the offset is just beyond the near edge then at step 556 thesample is said early, then the bit is classified, at step 558, as beingin the early zone. If the offset, at step 560, places the samplesomewhere close to the middle, then it is classified, at step 562, asbeing in the middle zone. If the offset, at step 564, places the samplebeyond the boundaries of the middle zone, then the sample is classified,at step 566, as being late and those samples that are even beyond thelate zone, at step 568, are ignored.

Once the position of the sample has been determined relative distancefrom the center of the data bit is calculated at step 535. This then isused, at step 537, to determine if the sample is either in front of orbehind the center data bit. Then at step 539, the sample closest to thecenter is selected and store in the bit phase compensation table. If thetable is not complete (i.e. the best sample has not been found) then, atstep 545, a new sample time is calculated and steps 529 to 545 arerepeated. But, if the table is complete, then, at step 571 process offinding the best sample is done and the monitoring system proceeds backto step 510 to calculate the preamble test value.

The signal processor, at step 510, selects the preamble subset for eachradio system to be monitored. The preamble subset is then used by thecorrelator to detect the presence of the desired radio system. Thismeans that the bit phase compensation table calculated at step 508 for aMotorola radio system with a sampling rate of 22.05 kHz has 49 entriesand spans 8 bits of 3600 Baud data, while a EDACS data sampled at 22.05kHz requires 147 samples to span 64 bits of 9600 baud of data. Thus, inthe case of Motorola systems, where each data frame contains aneight-bit preamble, the entire preamble fits exactly in a complete setof 49 samples. Thus, the Motorola correlator for samples at 22.05 kHzwill require only a single preamble value. On the other hand, the EDACSdata format has a 48-bit preamble. As a result, there are thirteenpossible positions for the EDACS preamble in a set of 64 samples. Formaximum speed, the EDACS correlator should compare each of the thirteenpossible values. However, if simplicity is desired over speed, then lessthan thirteen values can be used.

Once the preamble subset has been determined, at step 512, the preambletest values used by the correlator are then calculated. The value iscomputed by setting bits in the test value corresponding to the preamblebit values selected in the previous step. Thus, a portion of systemmemory that is large enough to accommodate the test values is reserved.Since the Motorola system at 22.05 kHz requires 49 bits, seven eight-bitbytes are required, or two 32-bit words. The initial value of each bitis set to zero. For Motorola systems a preamble value of ‘AC’ inhexadecimal notation is used. The first bit from the preamble subsetfrom step 506 is placed in each bit position of the test value accordingto a predefined sequence of data bits. Likewise, the remaining bits aresimilarly placed in the test value and those bits in the test value thatare to be ignored are set to zero. If the preamble subset contains fewerbits than are spanned in one set of samples (EDACS for example),additional test values are calculated by shifting the original preamblevalue and repeating this process.

Now that the preamble test value has been calculated, at step 514 theinverted preamble test value is calculated. In this step, the correlatortest value is calculated for an inverted system. This additional valueis calculated by inverting the bits calculated for a test value (step508), and then resetting bits in the inverted test value that are markedas ignored are set to zero. At step 516, the correlation mask value isthen calculated for each preamble test value. The correlator uses thisvalue to select which bits will be compared. Each mask value has thesame number of bits as the preamble test value. Each mask valueinitially contains all zeroes. Bits in the mask value that are setcorrespond to the bits found in the bit phase compensation table thatare not ignored. Thus, for the Motorola radio system sampled at 22.05kHz will have the following values:

Motorola preamble: ‘AC’

Motorola test value: ‘01F81F81FFE000’

Motorola mask value: ‘01F7DF7CFBEFBE’

Then the system, at step 518, determines the minimum preamble alignmentinterval. In this step the expected frequency of a preamble aligned in aset of successive samples is determined. First, the number of incomingsamples per transmitted data word is calculated. For a Motorola systemthat transmits a data word containing an 8 bit preamble and a 76 bitinformation frame, a set of 49 samples at 22.05 kHz will span 8 bits oftransmitted data will require approximately 514.5 successive samples(i.e. 84/18×49). Since this result is not a whole number, the correlatorwill only be able to detect a preamble in the incoming data every 1029samples (514.5×2). It also should be noted that even though the preamblemay not be aligned for every message, the bit phase compensator willrender the correct transmitted data. Once these values have all beencalculated, at step 520, they are stored in an appropriate set of tablesto be used by the signal processor 126 to decode and monitor a pluralityof trunked radio systems.

Reference is now directed to FIG. 6 is a block diagram that details theoperative elements of the correlator array in accordance with FIG. 3. Aspreviously mentioned the zero cross filter and detector 302 detects thepolarity of each bit in the incoming data stream, converts the receiveddata stream from PCM to its NRZ equivalent and directs the data streamto the correlator array 304. As FIG. 6 shows, the correlator array 304is a multi-element software mechanism that processes incoming samplesand detects the presence of a system by scanning the incoming samplesfor the pre-calculated preamble test value, masked by the correspondingmask value. As shown in this illustrative view, the correlator includesa set of Motorola positive 604 and negative 608 correlators, a set ofEDACS positive 606 and negative 610 correlators as well as a set ofpositive and negative correlators 612 for each of the other designatedradio systems. As a result, the positive data bits or samples of theincoming data message from a Motorola radio system are directed to andcorrelated by the Motorola positive correlator 604 while the negativedata bits or samples are directed to and correlated by the Motorolanegative correlator 608 simultaneously and in parallel.

FIG. 7 is a schematic diagram detailing the logic functions of thecorrelation elements of a correlator in accordance with theimplementation of the correlator array shown in FIG. 6. As FIG. 7 shows,correlator 700 includes a plurality of correlation elements 702 a-702 n.Each correlation element 702 a-702 n includes an exclusive-OR (XOR) 710and an AND logic function 712. As one ordinarily skilled in the art willrealize and appreciate that the process of correlating a plurality ofincoming data bits can be performed in parallel depending on theprocessor and configuration of system used. For example, the test andcorrelation mask values of a Motorola radio system are approximately 49bits in length when sampled at 22.05 kHz. As a result, an eight-bitmicrocontroller used in a radio system will require approximately seveniterations to perform the required correlation function. But, if apersonal computer system having a 32-bit processor such as Intel PentiumIII™ or IV™ is used, it will only takes a relatively small number ofmachine cycles to perform the same function. But for this embodiment,those components in the figures that comprise a number of elements willbe clearly referenced, as such but for the purposes of clarity, theindividual, single operative components of correlation element 702 awill be used specifically for this discussion.

As FIG. 7 shows the exclusive-Or 710 receives data bits and test valuesvia input nodes 704 and 706, respectively and computes a resultant valuethat is then directed to an “AND” logic function 712. Here, the “AND”function 712 combines the value received from the exclusive-OR 710 witha correlation mask value received via input node 708 that produces acorrelation result 714. If the output from the “AND” logic function isall zeroes, indicating that the test value matches the incoming databits in all positions, then correlation result is a positive match. Whena positive match is detected, the correlator 700 saves the valueaccumulated by sample counter 308 and then resets the counter 308 tozero. In addition, if the saved value is equal to a specificpre-calculated minimum preamble alignment interval or it is at leastequivalent to an integer multiple of that value and if the position oftwo preamble codes detected in the incoming data stream are consistentwith the length of the transmitted data messages, there is a highprobability that the appropriate system has been identified. If so, thesystem selector 302 is then set to the identified system type, and thebit phase compensator 310 is reset, indicating that the sampled data isaligned.

It should be also noted that it is possible for the preamble bitsequence to appear in the body of a data message, thus giving rise tothe possibility of a false detection of the preamble. Looking formultiple preamble codes in the incoming sample stream at intervals ofthe expected message length reduces, but does not eliminate, thepossibility of a false detection. It is understood that the errorcorrection and cyclic redundancy features inherent in a transmitted datamessage will further reduce the possibility of decoding an invalidmessage to an acceptable level, as well

An alternative embodiment of the present invention envisions uses amicro-controller such as the one used to control a receiver scanner. Inthis embodiment, the pre-calculation steps are carried out once, duringthe programming of the micro-controller. Additionally, the incoming databits are sampled directly using an input port on the micro-controller,rather than using a sound card. Here, the sample rate is selected from apossible set of values for a given the micro-controller architecture andits associated clock rate.

Although the invention has been described with respect to certainpreferred embodiments, modifications and additions within the spirit ofthe invention will occur to those of skill in the art. Therefore, thescope of the invention is not limited by the foregoing description butis defined solely by the following claims.

1. A method of monitoring communications in a trunked communicationsystem comprising the steps of: setting both an appropriate data andsampling rate, wherein the sampling rate is set substantially higherthan the data rate; receiving a plurality of digital data messages on acontrol channel transmitted from at least one trunking radio systemwherein each digital data message includes a preamble and a codedinformation frame; identifying the polarity of the incoming digital datamessages; sampling the received digital message at the sample rate;identifying type and data rate of the trunking system, wherein the typeand date rate are identified by comparing incoming samples topre-calculated set of preamble patterns; selecting an appropriate set ofparameters and values based upon the system type identified;reconstructing the stream of digital messages by selecting samples fromthe sample data stream to produce an output data stream.
 2. The methodas recited in claim 1, wherein if the polarity of the data stream of anincoming digital data message is negative, inverting the polarity ofthat data stream to be positive.
 3. The method as recited in claim 1,includes the step of searching a selected frequency band to discover alogical channel to frequency associations.
 4. The method as recited inclaim 1, wherein the selected sample rate must be high enough so as togenerate a bit phase compensator table can be built to encompass allrequired incoming bits.
 5. The method as recited in claim 1, whereincalculating the plurality of parameters and values are used by themonitoring system to select an optimally aligned bit pattern and tosynchronize the decoding element of the monitoring system furtherincludes the steps of; calculating the required values and parameters ofthe bit phase compensation table: generating a subset of the messagepreamble, wherein the subset of the preamble message is used by acorrelator array to detect the presence of the radio system to beselected; calculating the preamble test value wherein the preamble testvalue is used be the correlator array to establish the type of radiosystem and speed at which the radio system is transmitting its digitalmessage; computing the inverse preamble test value used for the datamessages of those radio systems that are found inverted radio systemwherein the inverse test value is calculated by inverting the bits ofthe preamble test value; generating a plurality of correlator maskvalues wherein a mask value is calculated for each test value that thecorrelator array uses to select the data bits in the preamble tocompared; and determining an appropriate preamble alignment interval. 6.The method as recited in claim 5, wherein the plurality of parametersand values are stored in at least one lookup table.
 7. The method asrecited in claim 1, wherein the codes that specify the talk group andchannel assignment are extracted from the reconstructed codedinformation frame.
 8. The method as recited in claim 6, wherein the talkgroup and channel assignment codes are compared to an array of stored,predefined codes.
 9. The method as recited in claim 7, wherein if thecodes match tuning the frequency tuned radio receiver of the monitoringsystem to the appropriate working voice channel and monitoring theresultant radio communications traffic.
 10. A computer program productincluding a computer useable medium having computer readable codeembodied therein for monitoring analog voice communications traffic in atrucked radio communications system where the computer program productcomprising a computer readable program code devices of the monitoringsystem configured to set both an appropriate data and sampling rate,wherein the sampling rate is set substantially higher than the datarate; a computer readable program code devices of the monitoring systemconfigured to receive a plurality of digital data messages on a controlchannel transmitted from at least one trunking radio system wherein eachdigital data message includes a preamble and a coded information frame;a computer readable program code devices of the monitoring systemconfigured to identify the polarity of the incoming digital datamessages; a computer readable program code devices of the monitoringsystem configured to sample the received digital message at the samplerate; a computer readable program code devices of the monitoring systemconfigured to identify type and data rate of the trunking system,wherein the type and date rate are identified by comparing incomingsamples to pre-calculated set of preamble patterns; a computer readableprogram code devices of the monitoring system configured to select anappropriate set of parameters and values based upon the system typeidentified; a computer readable program code devices of the monitoringsystem configured to reconstruct the stream of digital messages byselecting samples from the sample data stream to produce an output datastream.
 11. The computer program product as recited in claim 10, whereinif the polarity of the data stream of an incoming digital data messageis negative, inverting the polarity of that data stream to be positive.12. The computer program product as recited in claim 10, includes thestep of searching a selected frequency band to discover a logicalchannel to frequency associations.
 13. The computer program product asrecited in claim 10, wherein the computer readable program code devicesof the monitoring system is configured to select a sample rate highenough so as to generate a bit phase compensator table built toencompass all required incoming bits.
 14. The computer program productas recited in claim 10, wherein the computer readable program codedevices of the monitoring system is configured to calculate theplurality of parameters and values used by the monitoring system toselect an optimally aligned bit pattern and to synchronize the decodingelement includes the steps of, a computer readable program code devicesof the monitoring system configured to calculate the required values andparameters of the bit phase compensation table; a computer readableprogram code devices of the monitoring system configured to generate asubset of the message preamble, wherein the subset of the preamblemessage is used by a correlator array to detect the presence of theradio system to be selected; a computer readable program code devices ofthe monitoring system configured to calculate the preamble test valuewherein the preamble test value is used be the correlator array toestablish the type of radio system and speed at which the radio systemis transmitting its digital message; a computer readable program codedevices of the monitoring system configured to compute the inversepreamble test value used for the data messages of those radio systemsthat are found inverted radio system wherein the inverse test value iscalculated by inverting the bits of the preamble test value; a computerreadable program code devices of the monitoring system configured togenerate a plurality of correlator mask values wherein a mask value iscalculated for each test value that the correlator array uses to selectthe data bits in the preamble to compared; and a computer readableprogram code devices of the monitoring system configured to determine anappropriate preamble alignment interval.
 15. The computer programproduct as recited in claim 14, wherein the computer readable programcode devices of the monitoring system is configured to store theplurality of parameters and values in at least one lookup table.
 16. Thecomputer program product as recited in claim 10, wherein the computerreadable program code devices of the monitoring system is configured toextract the codes that specify the talk group and channel assignmentfrom the reconstructed coded information frame.
 17. The computer programproduct as recited in claim 16, wherein the computer readable programcode devices of the monitoring system is configured to compare the talkgroup and channel assignment codes to an array of stored, predefinedcodes.
 18. The computer program product as recited in claim 16, whereinthe computer readable program code devices of the monitoring system isconfigured to tune the frequency tuned radio receiver of the monitoringsystem to the appropriate working voice channel and monitoring theresultant radio communications traffic, if the codes match.
 19. A systemfor monitoring communications in a trunked communication systemcomprising of: circuitry for setting both an appropriate data andsampling rate, wherein the sampling rate is set substantially higherthan the data rate; circuitry for receiving a plurality of digital datamessages on a control channel transmitted from at least one trunkingradio system wherein each digital data message includes a preamble and acoded information frame; circuitry for identifying the polarity of theincoming digital data messages; circuitry for sampling the receiveddigital message at the sample rate; circuitry for identifying type anddata rate of the trunking system, wherein the type and date rate areidentified by comparing incoming samples to pre-calculated set ofpreamble patterns: circuitry for selecting an appropriate set ofparameters and values based upon the system type identified; andcircuitry for reconstructing the stream of digital messages by selectingsamples from the sample data stream to produce an output data stream.20. The apparatus as recited in claim 19, wherein if the polarity of thedata stream of an incoming digital data message is negative, invertingthe polarity of that data stream to be positive. 21-28. (canceled)